home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / ddj0897.zip / DYN401.ZIP / class / objary.c < prev    next >
C/C++ Source or Header  |  1997-04-16  |  3KB  |  144 lines

  1.  
  2.  
  3. /*  Copyright (c) 1993-1996 Algorithms Corporation  */
  4. /*  All rights reserved.  */
  5.  
  6.  
  7.  
  8.  
  9. /*  This file automatically generated by dpp - do not edit  */
  10.  
  11. #define    DPP_STRATEGY    2
  12. #define    DPP_FASTWIDE    0
  13.  
  14.  
  15.  
  16. #line 18 "objary.d"
  17. #include "array1.h" 
  18.  
  19. #define    CLASS    ObjectArray_c
  20. #define    ivType    ObjectArray_iv_t
  21.  
  22. #include "generics.h"
  23.  
  24. object    ObjectArray_c;
  25.  
  26.  
  27. #line 27 "objary.d"
  28. #define TYPE object 
  29.  
  30.  
  31. static gIndex_t _index; 
  32.  
  33.  
  34. cvmeth objrtn ObjectArray_cvm_vNew(object self, va_list _rest_)
  35.     unsigned rank = va_arg(_rest_, unsigned);
  36.  
  37. #line 35 "objary.d"
  38.     static gNewArray_t cnew = NULL; 
  39.     MAKE_REST(rank); 
  40.  
  41.     if (!cnew) 
  42.         cnew = cmcPointer(Array, gNewArray); 
  43.     return cnew(self, AT_OBJ, rank, _rest_); 
  44.  
  45. #line 48 "objary.c"
  46.  
  47. static    objrtn    ObjectArray_cfm_vNew(object self, ...)
  48. {
  49.     va_list    _rest_;
  50.     va_start(_rest_, self);
  51.     return ObjectArray_cvm_vNew(self, _rest_);
  52. }
  53.  
  54.  
  55.  
  56. #line 43 "objary.d"
  57. ivmeth objrtn ObjectArray_ivm_vValue(object self, va_list _rest_)
  58.     MAKE_REST(self); 
  59.     return *((TYPE *) _index(self, _rest_)); 
  60.  
  61. #line 66 "objary.c"
  62.  
  63. static    objrtn    ObjectArray_ifm_vValue(object self, ...)
  64. {
  65.     va_list    _rest_;
  66.     va_start(_rest_, self);
  67.     return ObjectArray_ivm_vValue(self, _rest_);
  68. }
  69.  
  70.  
  71.  
  72. #line 49 "objary.d"
  73. ivmeth objrtn ObjectArray_ivm_vChangeValue(object self, va_list _rest_)
  74. { object val = va_arg(_rest_, object);
  75.     MAKE_REST(val); 
  76.     ChkArgNul(val, 2); 
  77.     *((TYPE *) _index(self, _rest_)) = val; 
  78.     return self; 
  79.  
  80. #line 86 "objary.c"
  81.  
  82. static    objrtn    ObjectArray_ifm_vChangeValue(object self, ...)
  83. {
  84.     va_list    _rest_;
  85.     va_start(_rest_, self);
  86.     return ObjectArray_ivm_vChangeValue(self, _rest_);
  87. }
  88.  
  89.  
  90. #line 57 "objary.d"
  91. static void init_class(void) 
  92.     _index = imcPointer(Array, gIndex); 
  93.  
  94. #line 102 "objary.c"
  95.  
  96. objrtn    ObjectArray_initialize(void)
  97. {
  98.     static  CRITICALSECTION  cs;
  99.     static  int volatile once = 0;
  100.  
  101.     ENTERCRITICALSECTION(_CI_CS_);
  102.     if (!once) {
  103.         INITIALIZECRITICALSECTION(cs);
  104.         once = 1;
  105.     }
  106.     LEAVECRITICALSECTION(_CI_CS_);
  107.  
  108.     ENTERCRITICALSECTION(cs);
  109.  
  110.     if (ObjectArray_c) {
  111.         LEAVECRITICALSECTION(cs);
  112.         return ObjectArray_c;
  113.     }
  114.     INHIBIT_THREADER;
  115.     Array_initialize();
  116.     if (ObjectArray_c)  {
  117.         ENABLE_THREADER;
  118.         LEAVECRITICALSECTION(cs);
  119.         return ObjectArray_c;
  120.     }
  121.     ObjectArray_c = gNewClass(Class, "ObjectArray", 0, 0, Array, END);
  122.     cvMethodFor(ObjectArray, vNew, ObjectArray_cvm_vNew, ObjectArray_cfm_vNew);
  123.     ivMethodFor(ObjectArray, vValue, ObjectArray_ivm_vValue, ObjectArray_ifm_vValue);
  124.     ivMethodFor(ObjectArray, vChangeValue, ObjectArray_ivm_vChangeValue, ObjectArray_ifm_vChangeValue);
  125.  
  126.     init_class();
  127.  
  128.     ENABLE_THREADER;
  129.  
  130.     LEAVECRITICALSECTION(cs);
  131.  
  132.     return ObjectArray_c;
  133. }
  134.  
  135.  
  136.  
  137.